package FloodFill;

public class Fooldfill {
	public int m,n,ret;
    public int[] dx={0,0,1,-1};
    public int[] dy={1,-1,0,0};
    //dfs: 给点一个下标[i,j]将该下标周围的所以非color点变为color
    public void dfs(int[][] image, int i,int j,int color) {
        image[i][j]=color;

        //枚举四个方向
        for(int k=0;k<4;k++){
            int x=i+dx[k],y=j+dy[k];
            if(x>=0&&y>=0&&x<m&&y<n&&image[x][y]==ret){
                dfs(image,x,y,color);
            }
        }
        
    }
    public int[][] floodFill(int[][] image, int sr, int sc, int color) {
    	//如果指定点已经为color,则不需要更改，直接返回
        if(image[sr][sc]==color){
            return image;
        }
        m=image.length;
        n=image[0].length;
        ret=image[sr][sc];
        dfs(image,sr,sc,color);
        return image;
    }
}
